General packet radio service (GPRS) is a packet-oriented mobile data service for cellular communications systems. FIG. 1A illustrates a conventional telecommunications network that includes a GPRS component. A user equipment UE1 100 communicates over an air interface to a node B 102, which is controlled by and communicates over a wired interface with a radio network controller RNC 104. A serving GPRS support node (SGSN) 106 is responsible for the delivery of data packets from and to the mobile stations within its geographical service area. A gateway GPRS support node (GGSN) 108 is responsible for interworking between the GPRS network and external packet switched networks, such as Internet protocol (IP) network IPNW1 110. Signaling and data traffic that is moving in the direction from the UE to the GGSN is referred to as moving “upstream” and traffic in the opposite direction is referred to as moving “downstream”.
GGSN 108 is the anchor point that enables the mobility of UE1 100 in the GPRS network. GGSN 108 converts the GPRS packets coming from SGSN 106 into the appropriate packet data protocol format (e.g., IP or X.25) and sends them out on the corresponding packet data network, e.g., IPNW1110. In the other direction, PDP addresses of incoming data packets are converted to the appropriate packet data protocol of the GPRS network and are addressed to the address of the destination user as he or she is known to the cellular network. The readdressed packets are sent to the responsible SGSN, e.g., to SGSN 106. For this purpose, GGSN 108 stores the current SGSN address of the user and his or her profile in its location register. Thus, GGSN 108 maintains a mapping of the user's address within the GPRS network and the user's address within the external packet network. For example, GGSN 108 may map a global system for mobile communications (GSM) address to an Internet protocol (IP) address, and vice versa.
A PDP context is a data structure that contains information about an active session 112 with a subscriber. Conventionally, the PDP context includes the subscriber's IP address, the subscriber's international mobile subscriber identity (IMSI), and information that the GSNs use to identify data relate to a particular PDP context, such as a tunnel endpoint ID (TEID). In the example conventional network illustrated in FIG. 1A, GGSN 108 maintains a context database 114 that maps IP addresses to user equipment currently using the network. In this example, context database 114 indicates that the IP address 192.168.0.34 has been assigned to UE1 100 and that other IP addresses have been assigned to other user equipment, e.g., UE2 and UE3, not shown. Context database 114 may be a database, a table, a collection of data structures stored in volatile or non-volatile memory, or other suitable means for maintaining information for use by GGSN 108. Context database 114 may be stored within or collocated with GGSN 108, or it may be remotely located from GGSN 108.
Once a session is terminated, the PDP context for that session is cleared or discarded, and network hardware resources that were formerly allocated to the session may be released so that these resources may be used for another session. The PDP context is usually maintained by a GGSN but a copy of the PDP context may also be present on and used by a SGSN.
FIG. 18 is another conventional telecommunications network that uses a home node B (HNB) 118 in place of node B 102 and RNC 104. The components UE1 100, SGSN 106, GGSN 108, IPNW1 110, session 112, and context database 114 are identical to their like-numbered counterparts in FIG. 1A and therefore their descriptions will not be repeated here. Unlike the node B, a home node B is a low-power device designed to provide a limited area of coverage, such as within a house, office, or building. A home node B can provide cellphone coverage in an area that is too far from commercial cellphone towers and their associated node Bs. Unlike a node B, which is typically physically accessible only by personnel authorized by the network operator, physical access to a home node B may not be similarly restricted and is thus considered inherently insecure. For this reason, HNB 118 must go through a security gateway SeGW 120 to get to the network operator's network. Upstream from security gateway 120 is a home node B gateway, or HNB-GW 122, which is part of the signaling path between the UE and the GGSN and which may also be part of the data path between the UE and the GGSN. In the conventional network illustrated in FIG. 1B, SeGW 120 and HNB-GW 122 are on both the signaling path and the data path.
A session can be established with the GGSN that provides the connection between a mobile device and the core network, even if no activity is occurring for that session. For example, session 114 may be established between UE1 100 and GGSN 108 even in the absence of any data being communicated from UE1 100, through GGSN 108, to IPNW1 110. Once a PDP context is established on GGSN 108, resources are being used by GGSN 108 whether there is activity over session 114 or not. For this reason, GSN vendors may control the amount of time that a mobile session can remain inactive on a GGSN before a PDP context is cleared or discarded, thereby optimizing the memory resources of the GGSN. For example, a timer may be used to specify the amount of time that a mobile session can be idle before the GGSN purges the session, deletes the PDP context, and releases any resources that were associated with the session.
FIG. 1C illustrates the network of FIG. 1B showing a data offload condition involving UE1 100. A data offload is a situation in which a user equipment is sending or receiving data via a data path that does not include the GGSN which is currently maintaining that UE's PDP context. In FIG. 1C, UE1 100 may be a cellphone whose user has requested the download of a ringtone, or a mobile computing device which the user is using to download a file or view a media stream, etc. To reduce the data traffic load on GGSN 108, an alternate data path 124 may be established from UE1 100 to the source or destination of the data stream, which in FIG. 1C is another network IPNW2 116, although it could be just an alternate path into IPNW1 110 that bypasses GGSN 108.
FIG. 1C illustrates one problem with a GGSN that uses an idle timer in a network that supports data offload: when traffic to or from the mobile user is “offloaded” through another node and does not traverse the GGSN, the GGSN may erroneously believe that the user equipment has disconnected or does not need to maintain the session. In FIG. 1C, session 112 becomes inactive during the duration of the data offload via alternate data path 124. If GGSN 108 fails to detect any activity from UE1 100 for a period longer than the interval defined by its idle timer, GGSN 108 may free the context that it previously maintained for UE1 100. Context database 114 releases the IP address formerly assigned to UE1 100, 192.168.0.34, and may eventually assign it to a new user equipment, such as UE4 (not shown.) The end result is that the same IP address may be assigned to two active mobile devices simultaneously, as shown in FIG. 1D.
FIG. 1D illustrates the condition of the network after UE1 100 has completed its data offload and again transmits data packets to IPNW1 100 via GGSN 108. Session 112 is reactivated, but GGSN 108 has already assigned the IP address 192.168.0.34 to UE4. In this case, data coming from IPNW1 110 that should be routed to UE1 100 is instead routed to UE4, which did not request that data, and vice versa. This has potentially disastrous implications, not the least of which is the possibility of security breach or privacy violation.
A conventional solution to this problem is to not provide an idle timer capability, i.e., the PDP context is always maintained until torn down manually by the SGSN. However, this solution is not ideal because it requires the SGSN to vigilantly monitor sessions and take affirmative action to tear down the PDP context, which also generates additional traffic between the SGSN and the GGSN. In order to reduce the overhead on the SGSN, the SGSN may be less vigilant, e.g., to check the sessions less frequently, but this approach has the potential to tie up resources within the GGSN for longer than is necessary. An additional problem with conventional systems is that in some circumstances the data path from the RNC to the GGSN bypasses the SGSN. In this scenario the SGSN has no awareness of user plane activity or inactivity. Moreover, if the data offload occurs downstream from the SGSN, neither the SGSN nor the GGSN is able to monitor user plane traffic to determine whether to keep or discard the PDP context.
Accordingly, in light of these disadvantages associated with systems that support packet data offloading and that include SGSNs and/or GGSNs that use idle timers to determine when to purge PDP contexts, there exists a need for systems, methods, and computer readable media for maintaining PDP context on the GGSN while performing data offload.